home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / clipswin / mclip.bas < prev    next >
Encoding:
BASIC Source File  |  1995-05-09  |  4.9 KB  |  191 lines

  1. DefInt A-Z
  2. Option Explicit
  3. Global State%
  4. Global OldState%
  5. 'Flags for State%
  6.      Global Const sOn = 1
  7.      Global Const sOff = 2
  8.      Global Const sCombine = 3
  9. Global CRLF$   'Carriage Return
  10. 'Flags for GetClip and ClipText_Change procedures
  11.      Global IgnoreChange%
  12.      Global IgnoreClip%
  13. Global FileDirty%   'True if changes not yet saved
  14. Global Beeper% 'Beep after adding new item
  15. Global Title() As String    'Titles array
  16. Global Clip() As Variant     'Text array
  17. Global ClipCount%   'Array elements counter
  18. Global CombineIndex%     'Item being combined
  19. Global OldLi%            'Tracks previous Listindex for ClipText_Change
  20. 'FileName Holders
  21. Global cFile$
  22. Global tFile$
  23. Declare Function GetActiveWindow Lib "User" () As Integer
  24.  
  25. 'clipboard monitoring functions
  26. 'Global OldCLipboardHandle%    'Handle of last clipboard data
  27. 'Declare Function GetClipboardData Lib "User" (ByVal wFormat As Integer) As Integer
  28. 'Global Const CF_Text = 1
  29. 'Global Const CF_OwnerDisplay = &H80
  30. 'Declare Function OpenClipboard Lib "User" (ByVal hWnd As Integer) As Integer
  31. 'Declare Function CloseClipboard Lib "User" () As Integer
  32. 'Declare Function IsClipboardFormatAvailable Lib "User" (ByVal wFormat As Integer) As Integer
  33.  
  34. Function CheckClipboardStatus% ()
  35. '     Z = OpenClipboard(MClipForm.hWnd)
  36. '     Priv% = IsClipboardFormatAvailable(CF_OwnerDisplay)
  37. '     Select Case Priv%
  38. '          Case Is = 0 'easy, standard text
  39. '               CheckClipboardStatus% = GetClipboardData(CF_Text)
  40. '          Case Else 'private format
  41. '               CheckClipboardStatus% = -1
  42. '     End Select
  43. '     Z = CloseClipboard()
  44.      
  45.  
  46. End Function
  47.  
  48. Function CheckDirty () As Integer
  49. If FileDirty% = True Then
  50.      Dim C%
  51.      C% = MsgBox("Abandon changes to this file?", 305, "Clips")
  52.      If C% <> 1 Then CheckDirty = True: Exit Function
  53. End If
  54. CheckDirty = False
  55. End Function
  56.  
  57. Function CleanString (Test$) As String
  58. Dim I%
  59.  
  60. Test$ = Trim(Test$)
  61. 'first strip off leading control chars
  62. Do While Len(Test$) > 2
  63.      If Asc(Left$(Test$, 1)) < 33 Then
  64.       Test$ = Mid$(Test$, 2)
  65.      Else
  66.       Exit Do
  67.      End If
  68. Loop
  69. 'now chop at 1st return
  70. I% = InStr(Test$, CRLF$)
  71. If I% Then Test$ = Left$(Test$, I% - 1)
  72. CleanString = Test$
  73. End Function
  74.  
  75. Sub GetClip ()
  76.      Dim B$, T$
  77.      Static OldClipText$
  78.      On Error GoTo MemError
  79.            B$ = Clipboard.GetText()
  80.            If IgnoreClip% = True Then
  81.             IgnoreClip% = False
  82.             OldClipText$ = B$
  83.             Exit Sub
  84.            End If
  85.      If B$ = OldClipText$ Then Exit Sub
  86.      OldClipText$ = B$
  87.      If LTrim(B$) = "" Then Exit Sub
  88.      ClipCount% = ClipCount% + 1
  89.      ReDim Preserve Title(ClipCount%)
  90.      ReDim Preserve Clip(ClipCount%)
  91.      T$ = CleanString(Left$(B$, 60))
  92.      mClipForm.Titles.AddItem T$
  93.      mClipForm.Titles.ListIndex = mClipForm.Titles.NewIndex
  94.      Title(ClipCount% - 1) = T$
  95.      T$ = ""
  96.      mClipForm.ClipText = B$
  97.      B$ = ""
  98.      ToggleMenu True
  99.      If Beeper% Then Beep
  100. BackDoor1:
  101.      Exit Sub
  102. MemError:
  103.      If Err = 14 Then MsgBox "Clipboard text is too long!"
  104.      Clipboard.SetText ""
  105.      Resume BackDoor1
  106. End Sub
  107.  
  108. Sub LabelIt ()
  109. If State% = sOn Then
  110.      mClipForm.Label1 = "State=ON":
  111. Else
  112.      mClipForm.Label1 = "State=OFF"
  113. End If
  114. End Sub
  115.  
  116. Sub NoEdit ()
  117.      mClipForm.ClipText.SelStart = Len(mClipForm.Titles)
  118.      mClipForm.ClipText.SelLength = 0
  119. End Sub
  120.  
  121. Sub SaveCurrFile ()
  122. LibSave
  123. End Sub
  124.  
  125. Sub SaveWithNewName ()
  126.      mClipForm.CMDialog1.DefaultExt = "MCF"
  127.      mClipForm.CMDialog1.Filter = "Clips files|*.MCF"
  128.      On Error Resume Next
  129.      mClipForm.CMDialog1.Action = 2
  130.      If Err = 32755 Then Exit Sub
  131.      tFile$ = mClipForm.CMDialog1.Filename
  132.      If tFile$ = "" Then Exit Sub
  133.      cFile$ = Left$(tFile$, InStr(tFile$, ".")) + "CLP"
  134.      
  135.      Dim X
  136.      For X = Len(tFile$) To 1 Step -1
  137.       If Mid$(tFile$, X) = "\" Then
  138.            Path$ = Left$(tFile$, X)
  139.            Exit For
  140.       End If
  141.      Next
  142.      LibSave
  143.  
  144.      'MClipForm.CMDialog1.Filename
  145.      'MsgBox MClipForm.CMDialog1.Filename
  146. End Sub
  147.  
  148. Sub SetCombineMode ()
  149.      Select Case State% = sCombine
  150.       Case Is = False
  151.            IgnoreChange% = True
  152.            OldState% = State%
  153.            State% = sCombine%
  154.            mClipForm.Label1 = "State is Combine"
  155.            CombineIndex% = mClipForm.Titles.ListIndex
  156.            mClipForm.ClipText.SetFocus
  157.       Case Is = True
  158.            State% = OldState%
  159.            LabelIt
  160.            mClipForm.Titles.ListIndex = CombineIndex%
  161.            IgnoreChange% = False
  162.       End Select
  163. End Sub
  164.  
  165. Sub ToggleMenu (e As Integer)
  166. Dim X
  167. For X = 0 To 7
  168. If X <> 5 Then mClipForm.eItem(X).Enabled = e
  169. Next
  170. mClipForm.fItem(3).Enabled = e
  171. mClipForm.fItem(4).Enabled = e
  172.  
  173. End Sub
  174.  
  175. Sub ToggleSettings (CheckMe%)
  176. Dim X
  177. For X = 1 To 3
  178.      If X = CheckMe% Then
  179.       mClipForm.sItem(X).Checked = True
  180.      Else
  181.       mClipForm.sItem(X).Checked = False
  182.      End If
  183. Next
  184. End Sub
  185.  
  186. Sub YesEdit ()
  187.      IgnoreClip% = True
  188.      OldLi% = mClipForm.Titles.ListIndex
  189. End Sub
  190.  
  191.